package chapter06

/**
  * 特质的自身类型
  */
object Test16_TraitSelfType {

  def main(args: Array[String]): Unit = {
    val user = new RegisterUser("fy","123456")
    user.insert()
  }
}

// 用户表
class User(val name: String, val password: String)


trait UserDao {
  // UserDao可以调用User中的属性,但又不想继承,可以定义自身类型,相当于实现了依赖注入
  _: User =>
  //向数据库插入数据
  def insert(): Unit = {
    println("insert into db:" + this.name)
  }
}


// 定义注册用户类
class RegisterUser(name: String, password: String) extends User(name, password) with UserDao
